#ifndef _FONT_H_
#define _FONT_H_

#include <GL/glfw.h>
#include "textures.h"

enum {CONSOLE_FONT};

struct FontHandle
{
	short type;
	GLuint font[164];
	GLfloat width;
	GLfloat height;
	short pixelWidth;
	short pixelHeight;
	short textureSize;
	int texture;
};

class FontManager
{
	private:
		FontHandle consoleFont;
		
	public:
		FontManager(void);
		~FontManager(void);
		/* genera le display list per i font, sempre usare display list
		 * perche' vengono sparate in vram e sono mooolto piu' veloci */
		void generateLists();
		/* restituisce il GLuint associato alla display list del carattere
		 * specificato dal parametro per il tipo specificato dall'altro
		 */
		GLuint getChar(char c, int type);
		float getFontWidth(int type);
		float getFontHeight(int type);
};

#endif
